home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir31 / tnypl211.zip / MODPLAY.H < prev    next >
C/C++ Source or Header  |  1994-06-21  |  2KB  |  74 lines

  1. /*  modplay.h - Tiny MOD Player V2.11 for Watcom C/C++ and DOS/4GW
  2.  
  3.     Module player for Sound Blaster and compatibles header file.
  4.  
  5.     Copyright 1993,94 Carlos Hasan
  6. */
  7.  
  8. #ifndef __MODPLAY_H
  9. #define __MODPLAY_H
  10.  
  11. #ifdef __BORLANDC__
  12. #ifndef __LARGE__
  13. #error Must use large memory model.
  14. #endif
  15. #endif
  16.  
  17. #define PM_TIMER    0
  18. #define PM_MANUAL   1
  19.  
  20. typedef unsigned char byte;
  21. typedef unsigned short word;
  22. typedef unsigned long dword;
  23. typedef byte *pointer;
  24.  
  25. typedef struct {
  26.     word    NumTracks;
  27.     word    OrderLength;
  28.     byte    Orders[128];
  29.     pointer Patterns[128];
  30.     pointer SampPtr[32];
  31.     pointer SampEnd[32];
  32.     pointer SampLoop[32];
  33.     byte    SampVolume[32];
  34. } Module;
  35.  
  36. typedef struct {
  37.     word    Period;
  38.     word    Volume;
  39.     dword   Length;
  40.     pointer Data;
  41. } Sample;
  42.  
  43. #ifdef __WATCOMC__
  44. #pragma aux MODDetectCard "_*" parm caller [];
  45. #pragma aux MODPlayModule "_*" parm caller [];
  46. #pragma aux MODStopModule "_*" parm caller [];
  47. #pragma aux MODPlaySample "_*" parm caller [];
  48. #pragma aux MODStopSample "_*" parm caller [];
  49. #pragma aux MODSetPeriod  "_*" parm caller [];
  50. #pragma aux MODSetVolume  "_*" parm caller [];
  51. #pragma aux MODSetMusicVolume  "_*" parm caller [];
  52. #pragma aux MODSetSampleVolume "_*" parm caller [];
  53. #pragma aux MODPoll "_*" parm caller [];
  54. #endif
  55.  
  56. extern int  MODDetectCard(word *Port, byte *IRQ, byte *DRQ);
  57. extern int  MODPlayModule(Module *Modulefile,word Chans,word Rate,word Port,byte IRQ,byte DRQ,byte Mode);
  58. extern void MODStopModule(void);
  59. extern void MODPlaySample(byte Voice,Sample *Instr);
  60. extern void MODStopSample(byte Voice);
  61. extern void MODSetPeriod(byte Voice,word Period);
  62. extern void MODSetVolume(byte Voice,byte Volume);
  63. extern void MODSetMusicVolume(byte Volume);
  64. extern void MODSetSampleVolume(byte Volume);
  65. extern void MODPoll(void);
  66.  
  67. extern Module *MODLoadModule(char *Path);
  68. extern void MODFreeModule(Module *Song);
  69. extern Sample *MODLoadSample(char *Path);
  70. extern void MODFreeSample(Sample *Instr);
  71.  
  72. #endif
  73.  
  74.